perm filename ALBINO[E87,JMC] blob sn#844251 filedate 1987-08-10 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	albino[e87,jmc]		Handling albino by reification
C00004 ENDMK
C⊗;
albino[e87,jmc]		Handling albino by reification

normalcolor elephants = gray

∀x. elephant x ⊃ type x = elephants

∀x. hascolor type x ∧ ¬ab17 x ⊃ color x = normalcolor type x

It is elaboration tolerant with respect to the predicate albino,
since we only need add

∀x. albino x ⊃ ab17 x.

	We'll probably also want albinos as a type, though I don't
immediately see how to use it.  This assumes that an object has a unique
type.  Can we improve this?

Second version:

normalcolor elephants = gray

normalcolor bears = {black,brown,white}

∀x. elephant x ≡ hastype(x,elephants)

This is just a definition of the unary predicate  elephant.

hastype(Clyde,elephants)

species Clyde = elephants

∀x y. hastype(x,y) ∧ ¬ab17(x,y) ⊃ color x = normalcolor y

	Here it is less obvious what to do about the predicate albino.
Maybe we want

∀x y. hastype(x,y) ∧ animaltype y ∧ albino x ⊃ ab17(x,y)

and

animaltype elephants.